package base.data;

import base.model.OrdersBaseModel;

import java.util.List;
import java.util.Map;

/**
 * 订单信息数据存放，使用集合进行存储数据
 *
 * @author Kcjuly
 * @date 2024-04-25
 *
 */

public abstract class OrdersBaseData {

    /**自定义集合方式,或选择参考案例模式之一
     * 例如使用ArrayList
     * 继承并实现抽象方法，实现数据增删查改，
     * primaryKey 在重写时的实际使用需要进行类型转换（String/int 等）
     */

    //存储方式自行选择
    protected List<OrdersBaseModel> ordersDataList;
    protected Map<String, OrdersBaseModel> ordersDataMap;


    //todo 重写构造方法，实现new对像时直接初始化数据
    public OrdersBaseData(){

    }

    /**
     * 查询订单
     * @param query 查询条件,可以重载方法增加查询参数
     * @return boolean
     */
    public abstract List<OrdersBaseModel> get(Object query);


    /**
     * 录入订单
     * @param ordersBaseModel 要保存的数据模型
     * @return boolean
     */
    public abstract boolean save(OrdersBaseModel ordersBaseModel);


    /**
     * 更新订单
     * @param ordersBaseModel 要保存的数据模型
     * @return boolean
     */
    public abstract boolean update(OrdersBaseModel ordersBaseModel);


    /**
     * 删除订单
     * @param primaryKey 根据订单编号删除
     * @return boolean
     */
    public abstract boolean delete(Object primaryKey);

}
